function Material( codigo, especificacao, medida, valor, grupo, quantidade, campusId )
{
	this.codigo = codigo;
	this.especificacao = especificacao;
	this.medida = medida;
	this.valor = valor;
	this.grupo = grupo;
	this.quantidade = quantidade;
	this.campusId = campusId;
	this.copia = false;
	this.tipo = "material";
}



/**
Carrega do banco de dados os materiais cadastrados para o tipo informado. O resultado � exibido din�micamente em um drop down box.
@tipo - Tipo ao qual o material est� v�nculado.
*/
function LimparSelect( select )
{

            if (select != null)
            {
               for( i = select.length -1; i >= 0; i-- )
               {
                    select.remove(i);
               }
            }
}

function AdicionarInformacaoEstatica ( select, text )
{
            var novaInformacao = document.createElement("option");
                                 novaInformacao.setAttribute("id", "opcoes");
                                 novaInformacao.value = 0;
                                 novaInformacao.text  = text;
                                 select.options.add(novaInformacao);
}

function CarregarMateriais( tipo )
{
          var ajax = new sack();
          var url = "http://"+servidor+"/CarregarDados.php?informacao=carregar_materiais_categoria&categoriaId="+tipo+"";
          var selectMaterial = document.getElementById("listaMaterial");

          ajax.onInteractive = function() {
                                          LimparSelect( selectMaterial );

                                          text = "Atualizando ...";

                                          AdicionarInformacaoEstatica ( selectMaterial, text ); };
         ajax.onCompletion = function() { ProcessarXMLMateriais( ajax.responseXML ); };
         ajax.requestFile = url;
         ajax.runAJAX();
}

/**
Transforma os resultados vindo do XML em informa��es din�micas na tela
@xml - XML com as informa��es sobre o categoria
*/
function ProcessarXMLMateriais( xml )
{
         var selectMaterial = document.getElementById("listaMaterial");

         // antes de exibir o resultado limpa o select que contem as informa��es da consulta anterior
         LimparSelect( selectMaterial );

         text = "Selecione o material";

         AdicionarInformacaoEstatica ( selectMaterial, text );

         if ( xml != null) // verifica se houveram resultados
         {
            var resultadosXML = xml.getElementsByTagName("material");

            for(var i=0; i < resultadosXML.length; i++) // percorre o resultado
            {
                    // recupera as informa��es vindas do xml
                    var material = resultadosXML[i];
                    var materialId = material.getElementsByTagName("id")[0].firstChild.nodeValue;
                    var materialNome = material.getElementsByTagName("nome")[0].firstChild.nodeValue;

                    // adiciona um novo 'option' ao campo select com o setor encontrado
                    var novoMaterial = document.createElement("option");
                    novoMaterial.setAttribute("id", "opcoes");
                    novoMaterial.value = materialId;
                    novoMaterial.text  = materialNome;
                    selectMaterial.options.add(novoMaterial);
            }
         }else{
               LimparSelect( selectMaterial );
               
               var selectCategoria = document.getElementById("listaCategorias");

               if ( selectCategoria.options[selectCategoria.selectedIndex].value == 0 ){
                  text = "Primeiro selecione a categoria";
               }else{
                  text = "Nenhum material encontrado";
               }

               AdicionarInformacaoEstatica ( selectMaterial, text );
         }
}

function CarregarMaterial( id )
{
          var ajax = new sack();
          var url = "http://"+servidor+"/CarregarDados.php?informacao=material&materialId="+id+"";
          var selectMaterial = document.getElementById("listaMaterial");
          ajax.onCompletion = function() { ProcessarXMLMaterial( ajax.responseXML ); };
          ajax.requestFile = url;
          ajax.runAJAX();
}

/**
Transforma os resultados vindo do XML em informa��es din�micas na tela
@xml - XML com as informa��es sobre o categoria
*/
function ProcessarXMLMaterial( xml )
{
         if ( xml != null) // verifica se houveram resultados
         {
            var resultadosXML = xml.getElementsByTagName("material");

            for(var i=0; i < resultadosXML.length; i++) // percorre o resultado
            {
                    // recupera as informa��es vindas do xml
                    var material = resultadosXML[i];
                    var materialId = material.getElementsByTagName("id")[0].firstChild.nodeValue;
                    var materialCATMAT = material.getElementsByTagName("codigo_sicaf")[0].firstChild.nodeValue;
                    var materialCodigoAberto = material.getElementsByTagName("codigo_aberto")[0].firstChild.nodeValue;
                    var materialNome = material.getElementsByTagName("nome")[0].firstChild.nodeValue;
                    var materialDescricao = material.getElementsByTagName("descricao")[0].firstChild.nodeValue;
                    var materialValor = material.getElementsByTagName("valor")[0].firstChild.nodeValue;
                    var materialUnidadeId = material.getElementsByTagName("unidadeId")[0].firstChild.nodeValue;
                    var materialUnidadeSigla = material.getElementsByTagName("sigla")[0].firstChild.nodeValue;
                    var materialUnidadeCapacidade = material.getElementsByTagName("capacidade")[0].firstChild.nodeValue;
                    var materialUnidadeMedida = material.getElementsByTagName("medida")[0].firstChild.nodeValue;

                    var inputCATMAT = document.getElementById("catmat");
                    inputCATMAT.value = materialCATMAT;
                    
                    if (materialCodigoAberto == 0){
                        var inputRadioCodigoAberto = document.getElementById("codigoAbertoNao");
                        inputRadioCodigoAberto.checked = true;
                        }else{
                              var inputRadioCodigoAberto = document.getElementById("codigoAbertoSim");
                              inputRadioCodigoAberto.checked = true;
                              }

                    
                    var inputNome = document.getElementById("nome");
                    inputNome.value = materialNome;
                    
                    var selectUnidade = document.getElementById("unidade");
                    for (var i=0; i < selectUnidade.length; i++)
                    {
                        if ( selectUnidade.options[i].value == materialUnidadeId )
                           selectUnidade.options[i].selected = true;
                    }

                    var inputDescricao = document.getElementById("descricao");
                    inputDescricao.value = materialDescricao;
                    
                    var inputValor = document.getElementById("valor");
                    inputValor.value = materialValor;
            }
         }
}
